/*
 * @Author       : Joel
 * @Date         : 2023-09-01 11:52:53
 * @LastEditors: Joel
 * @LastEditTime: 2025-04-10 09:36:32
 * @FilePath: /gd32f303cct6/usr/src/user_timer.h
 * @Description  : 
 * Copyright 2023 Siliten, All Rights Reserved. 
 * 2023-09-01 11:52:53
 */
#ifndef __USER_TIMER_H
#define __USER_TIMER_H
/* 包含头文件代码 */

#include <stdio.h>
#include <stdint.h>
#include "gd32f30x.h"
#include <string.h>
#if defined(__cplusplus)
extern "C" {
#endif /*_cplusplus*/

/*******************************************************************************
 * Definitions
 ******************************************************************************/

/* 公共(可被其他源文件使用)宏、枚举、结构体的定义 */

// 分频
#define TIMER4_PRESCALER ((SystemCoreClock/16000000)-1) 
// 定时周期10us
#define BASE_TIMER4_MS (160-1)

enum
SET_TIMERID{
    
TIMERID0 ,
TIMERID1,
TIMERID2,
TIMERID3,
TIMERID4,
TINERID_MAX

};
/* 外部全局变量的声明 */


/*******************************************************************************
 * API
 ******************************************************************************/

/* 外部函数(可加 extern 修饰)的声明 */

void User_Timer_Init(void);
void User_Timer_Config(uint8_t timerId,uint32_t timeoutMs,void (*cb)(void *),void *arg);
void User_Timer_Start(uint8_t timerId);
void User_Timer_Stop(uint8_t timerId);
void User_Timer_Clear(uint8_t timerId);
#if defined(__cplusplus)
}
#endif /*_cplusplus*/

#endif
/* el psy congroo */
